import ajax from 'service/ajax'

export default {
    state: {
        // 订单Id
        orderId: null,
        // 红包Id
        redId: null,
        // 免息券Id
        couponId: null,
        // 协议url
        protocolUrl: null,
        // 借款金额
        borrowAmt: null,
        // 借款期限
        days: null,
        // 订单状态
        status: null,
        // 订单显示状态
        showStatus: null,
        // 实际到账金额
        arrivalAmt: null,
        // 还款金额
        repayAmt: null,
        // 逾期金额
        expireAmt: null,
        // 借款日期
        orderDate: null,
        // 还款日期
        repayDate: null,
        // 实际到账日期
        actualRepayDate: null,
        // 利息
        interest: null,
        // 剩余还款天数
        surplusDays: null,
        // 银行名称
        bankName: null,
        // 银行卡号
        bankCard: null,
        // 未还款金额
        surplusRepayAmt: null,
        // 未还款本金
        surplusBorrowAmt: null,
        // 未还款逾期
        surplusExpireAmt: null
    },
    getters: {
        // 订单状态
        orderStatus(state) {
            return {}
        },
        // 是否还款中
        orderRepaying(state) {
            return state.status == 5
        },
        // 是否使用红包
        orderReding(state) {
            return state.redId != null && state.redId != ''
        },
        // 是否使用免息券
        orderCouponing(state) {
            return state.couponId != null && state.couponId != ''
        }
    },
    mutations: {
        orderUpdate: (state, payload) => {
            for (var k in state) {
                if (payload[k] !== undefined) {
                    state[k] = payload[k]
                }
            }
        },
        orderClear: (state) => {
            for (var k in state) {
                state[k] = null
            }
        }
    },
    actions: {
        // 调用接口接口获取最新订单
        orderNewAjax: ({ commit }, payload) => {
            return ajax.order.detail({
                userId: $store.state.user.userId
            }).then(res => {
                var { code, data } = res.data
                if (code == 'S') {
                    commit('orderUpdate', data)
                }
                return res
            })
        },
        orderClear({ commit }) {
            commit('orderClear')
        }
    }
}